package com.elloe.实现二叉树的Node节点;

import com.elloe.实现二叉树的Node节点.Node的Java实现.Node;
import com.elloe.实现二叉树的Node节点.数组升华二叉树.BinaryFromArray;

import java.util.ArrayList;
import java.util.List;

/**
 * @author ElloeStudy(Sifa Zhang)
 * @create 2022-04-09 14:02
 * To: 真常应物，真常得性，常清常静，常清静矣
 *
 * 递归遍历
 */
public class TestBinary {
    public static void main(String[] args) {
        int[] ints = new int[9];

        for (int i = 0; i < ints.length; i++) {
            ints[i] = i + 1;
        }
        List<Node> nodes = new ArrayList<>();
        // 数组创建二叉树
        BinaryFromArray.create(ints,nodes);
        for (Node node : nodes){
            System.out.print(node.getValue() + " ");
            System.out.print(node.getNode() + " ");
            System.out.print(node.getLeft() + " ");
            System.out.println(node.getRight());
        }

        // 先序遍历（递归），从当前数组的第一个node节点开始
        nodes.get(0).preTraversal(nodes.get(0));
        // 中序遍历（递归），从当前数组的第一个node节点开始
        System.out.print("\r\n"); // \r\n    换行
        nodes.get(0).MidTraversal(nodes.get(0));
        // 后序遍历（递归），从当前数组的第一个node节点开始
        System.out.print("\r\n"); // \r\n    换行
        nodes.get(0).afterTraversal(nodes.get(0));
    }
}

/*
// 将数组添加值(字符)
    for (int i = 0; i < chars.length; i++) {
        chars[i] = (char)(index + i);
    }

不能将char[] 数组转换为字符串 ，Mark一下
*System.out.println("=====");
Arrays.toString(ints);
System.out.println("-------");
char[] chars = {'a','b'};
Arrays.toString(chars);
*/